#!/usr/bin/env python3
"""
替代方案 - 安装ATXAgent2
"""

import subprocess
import requests
import os


def download_and_install_atx():
    """下载并安装ATXAgent2"""
    print("🔧 正在下载并安装ATXAgent2...")

    # ATXAgent2 APK下载链接
    apk_url = "https://github.com/openatx/android-uiautomator-server/releases/download/1.1.7/app-uiautomator.apk"
    apk_file = "atx_agent.apk"

    try:
        print("📥 正在下载ATXAgent2 APK...")
        response = requests.get(apk_url, timeout=30)

        with open(apk_file, "wb") as f:
            f.write(response.content)

        print("📱 正在安装到设备...")
        result = subprocess.run(
            ["adb", "install", "-r", apk_file], capture_output=True, text=True
        )

        if result.returncode == 0:
            print("✅ ATXAgent2安装成功!")
        else:
            print(f"❌ 安装失败: {result.stderr}")

        # 清理下载文件
        if os.path.exists(apk_file):
            os.remove(apk_file)

    except Exception as e:
        print(f"❌ 下载/安装失败: {e}")


def alternative_solution():
    """提供替代解决方案"""
    print(
        """
🎯 替代解决方案：

如果ATXAgent2也无法工作，我们可以考虑：

1. 使用Appium代替uiautomator2
2. 使用ADB命令直接控制（功能受限）
3. 使用其他自动化框架

让我们先尝试使用ADB命令实现基本功能：
"""
    )

    # 测试基本ADB功能
    commands = [
        "adb shell input tap 500 1000",  # 测试点击
        "adb shell input text 'hello'",  # 测试输入
        "adb shell input keyevent 4",  # 测试按键（返回键）
    ]

    print("🧪 测试基本ADB控制功能...")
    for cmd in commands:
        try:
            print(f"测试: {cmd}")
            subprocess.run(cmd.split(), timeout=5)
            print("✅ 成功")
        except Exception as e:
            print(f"❌ 失败: {e}")


if __name__ == "__main__":
    print("ATXAgent2安装和替代方案")
    print("=" * 40)

    choice = input("1. 尝试安装ATXAgent2\n2. 查看替代方案\n请选择 (1/2): ")

    if choice == "1":
        download_and_install_atx()
    else:
        alternative_solution()

    input("\n按回车键退出...")
